package com.zmn.oms.common.dto;

import com.zmn.consts.GlobalConsts;
import com.zmn.oms.common.constant.OrderConsts;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 类描述：节点通知
 * @author heciqi
 * @date 2020/12/25 14:28
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class QueueOrderNodeNotifyDTO implements Serializable {
	/**
	 * 操作人员类型
	 */
	private Integer operatorType;

	/**
	 * 操作人员Id
	 */
	private Long operatorId;

	/**
	 * 操作人
	 */
	private String operator;

	/**
	 * 工单id
	 */
	private Long workId;

	/**
	 * 订单id
	 */
	private Long orderId;

	/**
	 * 下单入口id
	 * @see com.zmn.consts.GateTypeConsts#GATE_API_TMALL
	 */
	private Integer receiveEntranceId;

	/**
	 * 订单类型
	 * @see com.zmn.oms.common.constant.OrderConsts#ORDER_TYPE_NEW
	 */
	private Integer type;

	/**
	 * 下单平台
	 * @see com.zmn.consts.GlobalConsts#PLAT_MARK_ZMN
	 */
	private Integer plat;

	/**
	 * 服务平台
	 * @see com.zmn.consts.GlobalConsts#PLAT_MARK_ZMN
	 */
	private Integer platWork;

	/**
	 * 订单状态
	 * @see com.zmn.oms.common.constant.OrderStatusConsts#WORK_STATUS_INPUT
	 */
	private Integer status;

	/**
	 * 订单结果状态
	 * @see com.zmn.oms.common.constant.OrderStatusConsts#WORK_RESULT_DOING
	 */
	private Integer resultStatus;

	/**
	 * 渠道id
	 */
	private Integer channelId;

	/**
	 * 订单线索ID，CDS系统录入的订单存在此字段. lhl-2021.05.20
	 */
	private Long clueId;

	/**
	 * 服务项类型，目前仅支持两种类型： 1.工单服务项 2.故障服务项
	 * 若值不等于2，则均作为值等于1处理
	 * @see OrderConsts#SERVICE_ITEM_TYPE_ORDER
	 * @see OrderConsts#SERVICE_ITEM_TYPE_FAULT
	 */
	private Integer servItemType;

	/**
	 * 是否测试单（1：非测试单，2：测试单）
	 */
	private Integer test;

	/**
	 * 是否重复的工单（1：不重复，2：重复）
	 */
	private Integer duplicate;

	/**
	 * 订单业务类型：1保外业务（C），2保内业务（F），3工程业务（B）
	 * @see GlobalConsts#BIZ_TYPE_C
	 */
	private Integer bizType;
	/**
	 * 服务商id
	 */
	private Integer manageCompanyId;

	/**
	 * 子公司id
	 */
	private Integer companyId;

	/**
	 * 修改前电话
	 */
	private String updateBeforePhone;

	/**
	 * 联系电话
	 */
	private String phone;

	/**
	 * 修改前电话2
	 */
	private String updateBeforePhone2;

	/**
	 * 联系电话2
	 */
	private String phone2;

	/**
	 * 用户ID
	 */
	private Long userId;

	/**
	 * 描述: 省份ID
	 */
	private Integer provinceId;

	/**
	 * 描述: 城市id
	 **/
	private Integer cityId;

	/**
	 * 地址来源  1：地址库 2：百度 3:手动街道
	 * @see OrderConsts#STREET_SOURCE_AWS
	 */
	private Integer streetSource;

	/**
	 * 街道id
	 */
	private Integer streetId;

	/**
	 * 省份名称
	 */
	private String provinceName;

	/**
	 * zmn城市名称
	 */
	private String cityName;

	/**
	 * 区县名称
	 */
	private String countyName;

	/**
	 * 街道
	 */
	private String street;

	/**
	 * 客户地址具体门牌号
	 */
	private String address;

	/**
	 * 描述: 订单完整地址
	 **/
	private String fullAddress;

	/**
	 * 服务分类id
	 */
	private Integer servCategId;

	/**
	 * 服务分类名称
	 */
	private String servCategName;

	/**
	 * 产品分组id
	 */
	private Integer productGroupId;

	/**
	 * 产品分组名称
	 */
	private String productGroupName;

	/**
	 * 产品信息
	 */
	private String productInfo;

	/**
	 * 维修工程师id
	 */
	private Integer masterId;

	/**
	 * 维修工程师姓名
	 */
	private String masterName;

	/**
	 * 责任工程师ID
	 */
	private Integer cancelLiableMasterId;

	/**
	 * 责任工程师名称
	 */
	private String cancelLiableMasterName;

	/**
	 * 下单时间
	 */
	private Long receiveTime;

	/**
	 * 预约时间
	 */
	private Long dutyTime;

	/**
	 * 预约状态
	 */
	private Integer dutyStatus;

	/**
	 * 下次联系时间
	 */
	private Long nextContactTime;

	/**
	 * 挂起原因编码
	 */
	private Integer reasonCode;

	/**
	 * 优惠券
	 */
	private List<String> itemCodes;

	/**
	 * 经度
	 */
	private Double longitude;

	/**
	 * 纬度
	 */
	private Double latitude;

	/**
	 * 发送时间
	 */
	private Date sendTime;

	/**
	 * 下单呼叫ID
	 */
	private String receiveCallId;

	/**
	 * 品码对接退款dto
	 */
	private ProductCodeMsgDTO productCodeMsgDTO;
}
